package Day_0218.DataType;

/**
 * @author zxc
 * @date 2023/02/18 14:34
 **/
public class Member_Local_Variables {
    public static void main(String[] args) {
        /**
         * 谈一谈对于成员变量和局部变量的理解
         * ===》
         * 1.定义和概念 ：
         * （1）变量：
         *  在程序执行的过程中，在某个范围内，其值可以发生改变的量。
         *  从本质上讲，变量其实是内存中的一小块区域
         *
         * （2）成员变量：
         *  方法外部，类内部定义的变量
         * （3）局部变量：
         *  类的方法中的变量。
         *
         * 2.成员变量和局部变量的区别
         * 1）作用域
         * （1）成员变量：
         *  针对整个类有效。
         * （2）局部变量：
         *  只在某个范围内有效。
         *  (一般指的就是方法,语句体内)
         *
         * 2）存储位置
         * （1）成员变量：（堆内存）
         *  随着对象的创建而存在，随着对象的消失而消失，存储在堆内存中。
         * （2）局部变量：（栈内存，每个方法都对应栈内存中某个栈帧;）
         *  在方法被调用，或者语句被执行的时候存在，存储在栈内存中。
         *  当方法调用完，或者语句结束后，就自动释放。
         *
         * 3）生命周期
         * （1）成员变量：
         *  随着对象的创建而存在，随着对象的消失而消失
         * （2）局部变量：
         *  当方法调用完，或者语句结束后，就自动释放。
         *
         * 4）初始值
         * （1）成员变量：
         *  有默认初始值。
         * （2）局部变量：
         *  没有默认初始值，使用前必须赋值。
         *
         * 3.成员变量和局部变量的注意事项 ：
         * ===>
         * 在使用变量时，需要遵循的原则为：就近原则
         * 首先在局部范围找，有就使用；
         * 接着在成员位置找。
         *
         */
    }
}
